// const path = require('path')
// const moment = require('moment')
// const gulp = require('gulp'),
//       gulpLoadPlugins = require('gulp-load-plugins')
// const $G = gulpLoadPlugins() // 自动加载已安装gulp插件

// const scss_src_path = ['public/scss/**/*.scss', '!public/scss/**/_*.scss'],
//       njk_src_path = 'views/*.html',
//       njk_dist_path = './dist/views/',
//       es_src_path = ['public/es/**/*.js', '!public/es/commonPlugin/*.js']

// const dist_path = './dist/static/'
// // fs.readdir()


// // 清空dist文件夹
// gulp.task('clean', () => {
//   return gulp.src(['dist/*', '!dist/version']).pipe($G.clean({ force: true }))
// })
// // 插件合并打包
// // const commonPlugin = {
// //   common: [
// //     './public/es/commonPlugin/common/jquery-3.1.1.js',
// //     './public/es/commonPlugin/common/jquery.easing.1.3.js',
// //     './public/es/commonPlugin/common/swiper.min.js'
// //   ]
// // }
// // function commonPluginBuild(path, name) {
// //   gulp
// //     .src(path)
// //     .pipe($G.concat(name + '.js'))
// //     .pipe($G.uglify())
// //     .pipe(
// //       $G.rename({
// //         dirname: 'js',
// //         suffix: ''
// //       })
// //     )
// //     .pipe(gulp.dest(dist_path))
// // }
// // gulp.task('commonPlugin', () => {
// //   for (const key in commonPlugin) {
// //     if (commonPlugin.hasOwnProperty(key)) {
// //       commonPluginBuild(commonPlugin[key], key)
// //     }
// //   }
// // })

// // js编译压缩
// // gulp.task('jsBuild', () => {
// //   gulp
// //     .src(es_src_path)
// //     .pipe($G.babel())
// //     .pipe(
// //       $G.uglify({
// //         compress: {
// //           drop_console: true // 去调console调试命令
// //         }
// //       })
// //     )
// //     .pipe(
// //       $G.rename({
// //         dirname: 'js',
// //         suffix: ''
// //       })
// //     )
// //     .pipe(gulp.dest(dist_path, { mode: '0777' }))
// // })
// // scss编译压缩
// // gulp.task('cssBuild', () => {
// //   gulp
// //     .src(scss_src_path)
// //     .pipe($G.sass.sync({ outputStyle: 'expanded' }))
// //     .on('error', $G.sass.logError)
// //     .pipe(
// //       $G.autoprefixer({
// //         browsers: [
// //           'last 2 version',
// //           'Firefox >= 20',
// //           'safari 5',
// //           'ie 8',
// //           'ie 9',
// //           'opera 12.1',
// //           'iOS 7',
// //           '> 5%',
// //           'ios 6',
// //           'android 4'
// //         ],
// //         cascade: true, //是否美化属性值
// //         remove: true //是否去掉不必要的前缀
// //       })
// //     )
// //     .pipe($G.cleanCss({debug: true}, (details) => {
// //       console.log(`${details.name}: ${details.stats.originalSize}`)
// //       console.log(`${details.name}: ${details.stats.minifiedSize}`)
// //     }))
// //     .pipe(
// //       $G.rename({
// //         dirname: 'css',
// //         suffix: ''
// //       })
// //     )
// //     .pipe(gulp.dest(dist_path, { mode: '0777' }))
// // })
// // 拷贝其他静态资源文件，目前是图片和字体文件
// // const static_copy_path = [
// //   'public/**/*.{eot,svg,ttf,woff,woff2}',
// //   'public/**/*.{png,jpg,gif,bmp,apng,webp,ico}'
// // ]
// // gulp.task('staticCopy', () => {
// //   gulp.src(static_copy_path).pipe(gulp.dest(dist_path))
// // })

// // htmlBeautify的可配置参数，注释部分为配置项默认值
// const htmlBeautifyOptions = {
//   // indent_level: 0,
//   // indent_with_tabs: false,
//   // max_preserve_newlines: 10,
//   // jslint_happy: false,
//   // space_after_anon_function: false,
//   // brace_style: 'collapse',
//   // keep_array_indentation: false,
//   // keep_function_indentation: false,
//   // space_before_conditional: true,
//   // break_chained_methods: false,
//   // eval_code: false,
//   // unescape_strings: false,
//   // wrap_line_length: 0,
//   // wrap_attributes: 'auto',
//   // wrap_attributes_indent_size: 4,
//   // end_with_newline: false,
//   indent_size: 2,
//   indent_char: ' ',
//   preserve_newlines: false
// }
// // 用 /(['"])[^'"]*\1/ 可以匹配闭合起来的单双引号，即左引号和右引号须保持一致
// // 正则表达式中 \1 匹配的是第一个带圆括号的子表达式所匹配的模式 以此类推
// const srcRegExp = /src=(['"])[^'"]*\1/gim // 匹配src属性 e.g. src="..."
// const linkRegExp = /<link.*?href=(['"])[^'"]*\1.*?>/gim // 匹配 link标签 的 href属性
// const bgUrlRegExp = /url\((['"])[^'"]*\1/gim // 匹配内联样式中的 url 属性
// /**
//  * 替换静态资源路径
//  * @param {string} str 包含静态资源地址的字符串 
//  */
// function replaceStaticPath(str) {
//   // console.log(str)
//   // 包含http字符的跳过，所以如果是本地资源请不要在路径中使用http
//   if (str.indexOf('http') > -1 || !/["']\/public\//.test(str)) {
//     return str
//   } else {
//     return str.replace(/\/public\//, '../static/')
//   }
// }
// // njk模板编译html静态文件
// gulp.task('njk', function() {
//   gulp
//     .src(njk_src_path)
//     .pipe($G.nunjucks.compile())
//     // 替换html里的特殊代码块，这里用于替换合并代码
//     .pipe(
//       $G.useref({
//         noAssets: true
//       })
//     )
//     // html 结构格式化 先格式化代码可以降低替换路径的正则匹配复杂度，
//     // 比如: 去除html属性的不必要空格空行，去除不正确换行的
//     .pipe($G.htmlBeautify(htmlBeautifyOptions))
//     // src 处理
//     .pipe($G.replace(srcRegExp, replaceStaticPath))
//     // link href 处理
//     .pipe($G.replace(linkRegExp, replaceStaticPath))
//     // style 里的background 处理
//     .pipe($G.replace(bgUrlRegExp, replaceStaticPath))
//     .pipe(gulp.dest(njk_dist_path, { mode: '0777' }))
// })


// // 将dist文件夹内的内容打包成一个zip包
// gulp.task('distZip', () => {
//   const zipName = 'package_' + moment().format('YYYYMMDD_HHmmss') + '.zip'
//   gulp
//     .src(['dist/**/*.*', '!dist/version/**/*.*'])
//     .pipe($G.zip(zipName))
//     .pipe(gulp.dest('./dist/version'))

//   console.log(
//     '\t文件打包目录: ',
//     path.join(__dirname, './dist/version/' + zipName)
//   )
// })
// gulp.task('distBuild', ['clean'], () => {
//   gulp.start('commonPlugin', 'jsBuild', 'cssBuild', 'staticCopy', 'njk')
// })
// module.export = gulp